#include <iostream>
using namespace std;
class Date
{
public:
    Date(int year = 1, int month = 1, int day = 1)
    {
        cout << " Date(int year = 1, int month = 1, int day = 1)" << endl;
        _year = year;
        _month = month;
        _day = day;
    }

    Date(const Date& d)
    {
        _year = d._year; 
        _month = d._month;
        _day = d._day; 
    }

    Date& operator=(const Date& d)
    {
        if(this != &d)
        {
            _year = d._year; 
            _month = d._month;
            _day = d._day;
        }
        return *this;
    }

    void print()
    {
        cout << _year << '-' ;
        cout << _month << '-';
        cout << _day <<endl;
    } 

    // int get_year()
    // {
    //     return _year;
    // }

    // int get_month()
    // {
    //     return _month;
    // }

    // int get_day()
    // {
    //     return _day;
    // }

    // int& set_year()
    // {
    //     return _year;
    // }

    // int& set_month()
    // {
    //     return _month;
    // }

    // int& set_day()
    // {
    //     return _day;
    // }

    friend ostream& operator<<(ostream& out,Date& d);
    friend istream& operator>>(istream& in,Date& d);

    ~Date()
    {
        cout << " ~Date() " << endl;
    }
private:
    int _year;  
    int _month;
    int _day;
};

// ostream& operator<<(Date &d,ostream& out)
ostream& operator<<(ostream& out,Date& d)
{
    out << d._year << "-" << d._month << "-" << d._day;
    return out;
}

istream& operator>>(istream& in,Date& d)
{
    in >> d._year >> d._month >> d._day;
    return in;
}

// ostream& operator<<(ostream& out,Date& d)
// {
//     out << d.get_year();
//     out << d.get_month();
//     out << d.get_day();
// }

// istream& operator>>(istream& in,Date& d)
// {
//     in >> d.set_year();
//     in >> d.set_month();
//     in >> d.set_day();
// }

int main()
{
    Date d;
    cin >> d;
    cout << d << endl;
    return 0;
}
